package com.changhong.framework.sdfs.namenode.server.context;

import java.util.concurrent.ConcurrentHashMap;

/**
 * namenode上下文存储对象
 * @author Summer
 */
public interface NameNodeContext {

    /**
     * 添加索引数据到map中
     * @param index 索引拼接数据
     * @param start 开始下标
     * @param end 结束下标
     */
    void addStartEndOperationIndex(String index,Long start,Long end);

    /**
     * 获取已经刷入磁盘的下标对应的数据
     * @return 刷盘数据对象
     */
    ConcurrentHashMap<String,StartEndOperationLog> getStartEndIndexMap();

    /**
     * 刷新最大的id
     * @param id 刷盘id
     */
    void refreshMaxId(Long id);

    /**
     * 获取最大的刷盘id
     * @return 最大id
     */
    Long getMaxId();


    /**
     * 保存索引数据的对象
     */
    class StartEndOperationLog{
        private Long start;
        private Long end;

        public StartEndOperationLog(Long start,Long end){
            this.start=start;
            this.end=end;
        }

        public Long getStart() {
            return start;
        }

        public void setStart(Long start) {
            this.start = start;
        }

        public Long getEnd() {
            return end;
        }

        public void setEnd(Long end) {
            this.end = end;
        }
    }


}
